home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / ScrollWindow / ScrollWindow.m < prev    next >
Text File  |  1992-12-19  |  1KB  |  45 lines

  1. #import "ScrollWindow.h"
  2. #import <appkit/nextstd.h>
  3. #import <appkit/ScrollView.h>
  4.  
  5. @implementation ScrollWindow
  6.  
  7. - becomeScrollWindow
  8. { id newContent;
  9.     newContent = [ScrollView new];
  10.     [newContent setAutosizing:(NX_WIDTHSIZABLE | NX_HEIGHTSIZABLE)];
  11.     [newContent setDocView:[self setContentView:newContent]];
  12.     return self;
  13. }
  14.  
  15. - setMinFrameSize:(NXSize) newSize
  16. {
  17.     minFrameSize = newSize;
  18.     return self;
  19. }
  20.  
  21. - windowWillResize:sender toSize:(NXSize *)frameSize
  22. { NXRect contentRect, maxFrameRect;
  23.     [[[self contentView] docView] getBounds:&contentRect];
  24.     [ScrollWindow getFrameRect:&maxFrameRect forContentRect:&contentRect style:[self style]];
  25.     frameSize->width = MIN(frameSize->width, maxFrameRect.size.width);
  26.     frameSize->height = MIN(frameSize->height, maxFrameRect.size.height);
  27.     frameSize->width = MAX(frameSize->width, minFrameSize.width);
  28.     frameSize->height = MAX(frameSize->height, minFrameSize.height);
  29.     return self;
  30. }
  31.  
  32. - windowDidResize:sender
  33. { NXRect contentRect, maxFrameRect;
  34.     [[[self contentView] docView] getBounds:&contentRect];
  35.     [ScrollWindow getFrameRect:&maxFrameRect forContentRect:&contentRect style:[self style]];
  36.     if ((frame.size.width < maxFrameRect.size.width) || (frame.size.height < maxFrameRect.size.height))
  37.         [[[self contentView] setHorizScrollerRequired:YES] setVertScrollerRequired:YES];
  38.     else
  39.         [[[self contentView] setHorizScrollerRequired:NO] setVertScrollerRequired:NO];
  40.     return self;
  41. }
  42.  
  43. @end
  44.  
  45.